{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 5.3评估指标与评分\n",
    "<p>在前面几章中，我们使用精度(正确分类的样本所占的比列)来评估分类模型,用R^2评估回归模型。但是仅靠这两个指标评估模型往往是不够的,我们还需要根据模型的应用场景,模型的问题类型(二分类 OR 多分类)等因素选择其他指标来评估模型的好坏</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5.3.2 .二分类指标\n",
    "<p>对于二分类问题,我们通常会说正类和反类，而正类通常是我们要寻找的类</p>\n",
    "\n",
    "#### 1.错误类型\n",
    "<p>错误类型有假正例与假反例。以医院检测病人为例子,我们将阳性测试结果称位正类，将阴性测试结果称位反类.我们不能保证所有预测结果都是正确的。即可能有假阳性(健康的人被诊断为阴性)和假阴性(患病的人被诊断为阴性)。错误的阳性预测我们称为假正例，错误的阴性预测称为假反例。在统计学中,假正例又被称位第一类错误,假反例又被称为第二类错误。</p>\n",
    "<p>无论是假正例，还是假反例，都会对现实造成影响，这时仅靠精度评估模型是不够的,我们还需要一些其他指标</p>\n",
    "\n",
    "#### 2.不平衡数据集\n",
    "<p>一个类别比另一个类别出现很多次的数据集称为不平衡数据集</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 0.  3. 13. 16.  9.  0.  0.  0.  0. 10. 15. 13. 15.  2.  0.  0.  0. 15.\n",
      "   4.  4. 16.  1.  0.  0.  0.  0.  0.  5. 16.  2.  0.  0.  0.  0.  1. 14.\n",
      "  13.  0.  0.  0.  0.  0. 10. 16.  5.  0.  0.  0.  0.  4. 16. 13.  8. 10.\n",
      "   9.  1.  0.  2. 16. 16. 14. 12.  9.  1.]\n",
      " [ 0.  0.  1. 14. 13.  4.  0.  0.  0.  3. 15. 12. 11. 15.  0.  0.  0.  8.\n",
      "  11.  1.  7. 13.  0.  0.  0.  1. 13. 14. 16.  1.  0.  0.  0.  0.  0. 14.\n",
      "  13. 14.  2.  0.  0.  0.  2. 12.  0.  9.  8.  0.  0.  0.  3. 13.  4. 12.\n",
      "   6.  0.  0.  0.  0.  9. 14. 13.  1.  0.]\n",
      " [ 0.  0.  4. 10. 13.  6.  0.  0.  0.  1. 16. 14. 12. 16.  3.  0.  0.  4.\n",
      "  16.  6.  3. 16.  4.  0.  0.  0. 12. 16. 16. 16.  5.  0.  0.  0.  0.  4.\n",
      "   4. 16.  8.  0.  0.  0.  0.  0.  0. 15.  5.  0.  0.  0.  5.  7.  7. 16.\n",
      "   4.  0.  0.  0.  2. 14. 15.  9.  0.  0.]\n",
      " [ 0.  0.  8. 16. 13.  0.  0.  0.  0.  0.  7. 14. 16.  4.  0.  0.  0.  0.\n",
      "   1. 12. 16. 13. 12.  1.  0.  0. 11. 16. 16. 14.  9.  0.  0.  0. 10. 16.\n",
      "  14.  1.  0.  0.  0.  0.  0. 14.  9.  0.  0.  0.  0.  0.  3. 16.  1.  0.\n",
      "   0.  0.  0.  0. 12.  9.  0.  0.  0.  0.]\n",
      " [ 0.  0.  1. 13.  7.  0.  0.  0.  0.  1. 15.  9. 15.  1.  0.  0.  0.  9.\n",
      "  11.  0. 16.  0.  0.  0.  0.  2. 10.  3. 14.  0.  0.  0.  0.  0.  0.  2.\n",
      "  11.  0.  0.  0.  0.  0.  0.  5. 11.  0.  0.  0.  0.  0.  0.  9. 10.  4.\n",
      "   4.  2.  0.  0.  1. 15. 16. 15. 13. 15.]]\n",
      "[False False  True False False]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.datasets import load_digits\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "digits = load_digits()\n",
    "y = digits.target == 9\n",
    "\n",
    "X_train,X_test,y_train,y_test = train_test_split(digits.data,y,random_state=0)\n",
    "print(X_train[:5])\n",
    "print(y_train[:5])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Unique predicted labels:[False]\n",
      "Test score:0.90\n"
     ]
    }
   ],
   "source": [
    "from sklearn.dummy import DummyClassifier\n",
    "import numpy as np\n",
    "dummy_majority = DummyClassifier(strategy='most_frequent').fit(X_train,y_train)\n",
    "pred_most_frequent = dummy_majority.predict(X_test)\n",
    "print(\"Unique predicted labels:{}\".format(np.unique(pred_most_frequent)))\n",
    "print(\"Test score:{:.2f}\".format(dummy_majority.score(X_test,y_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test score:0.92\n"
     ]
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeClassifier\n",
    "tree = DecisionTreeClassifier(max_depth=2).fit(X_train,y_train)\n",
    "pred_tree = tree.predict(X_test)\n",
    "print(\"Test score:{:.2f}\".format(tree.score(X_test,y_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dummy score:0.80\n",
      "logreg score:0.98\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "E:\\myAnaconda\\lib\\site-packages\\sklearn\\dummy.py:131: FutureWarning: The default value of strategy will change from stratified to prior in 0.24.\n",
      "  warnings.warn(\"The default value of strategy will change from \"\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "\n",
    "dummy = DummyClassifier().fit(X_train,y_train)\n",
    "pred_dummy = dummy.predict(X_test)\n",
    "print(\"dummy score:{:.2f}\".format(dummy.score(X_test,y_test)))\n",
    "\n",
    "logreg = LogisticRegression(C=0.1,max_iter=1000).fit(X_train,y_train)\n",
    "pred_logreg = logreg.predict(X_test)\n",
    "print(\"logreg score:{:.2f}\".format(logreg.score(X_test,y_test)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 3.混淆矩阵\n",
    "<P>对于二分类问题的评估结果,一种最全面的表示方法是混淆矩阵(confusion_matrix)</P>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Confusion matrix:\n",
      "[[402   1]\n",
      " [  6  41]]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import confusion_matrix\n",
    "# pred_logreg保存了逻辑回归的预测结果\n",
    "confusion = confusion_matrix(y_test,pred_logreg)\n",
    "print(\"Confusion matrix:\\n{}\".format(confusion))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "> 输出为一个 2 x 2 数组。其中行对应于真实的类别(非9和9),列对应预测的类别（正类和反类） "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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KJzs7Gy9//77UWmnLCABAxCzqlevHvZ4NPdtjJTIObVf1txwww264YYbvA4DpaRKlSqOZUV5D0daX6x9+/ZFiimSSHUtWLAgau3EOhZiBRCzGjRoEPYbfFHv7IokOzvbsaxhw4ZRa8dL33//vdchoBRF2hy7sO/h3Nxcbd682bH87LPPLnJcTlq3bu1YtnDhwqi1E+voAQMQs5w+qH/77beIfyyKYt26dY5lbdq0iUobQGmKNHTodNdhqF27djnuEFGtWjVVrVq1WLGFU79+fceytWvXRvULViwjAQMQsxITEx3LIi1RURROQx5xcXG64IILotIGUFqOHj2q1157zbG8S5cuhaonJyfHsaxu3bpFjiuSevXqRSyPdCemn5CAAYhZV199teP8lsmTJ5d4k+AlS5bos88+C1vWt2/fY/6hALw2efJkZWRkhC1LTEws9J2LxhjHskh7pxbHse50PNZel35BAgYgZh1//PH629/+Frbs66+/1sSJE4td9969ezVs2LCwZXFxcRo1alSx6441bdq0YTjVh1555RX94x//CFtmjNH48eMLXVekyfq7du0qamgR7dy5M2J5eVmQlQQMQEx7+OGHdcopp4Qtu/POO/Xkk08Wuc7s7Gz99a9/dfymfccddxR67kxZkJqaGnGFc5QtW7Zs0XXXXaeBAwc69k7dfvvtRdopom7duqpcuXLYssOHDx8zaSqKX375JWJ5UdYuK8tIwADEtNq1a2vu3Llh56FYazVs2DD17t27UPNGfvvtN02fPl1nn3220tPTw55z6aWX6p577ilp2ECJHT16VHv27NHmzZv14YcfKjU1Vd26dVOTJk30wgsvKG+f54IGDhyohx9+uEhtGWMUHx/vWF6UFfWP5fPPP49YHumuTj9hGQoAMa9t27ZKS0tTnz59lJWVVaB83rx5mjdvnlq3bq0LLrhA//d//6f69euratWq2r17t7Zu3arly5crPT094h1W1157rZ555hlVqlSpNC/HdQMHDpQkvfTSSx5HgnBOP/30qAy7VaxYUf/85z911113qUKFovevtG7d2jGOTz/9NOK2XUXhNO8y3/bt26PSTqwjAfMBY0yipA8l3WOtHe9tNEDpaNeunb766ivddtttevHFF5Wbm1vgnK+++qpYE3jj4+P16KOPRtxTryyL1pIdiF09e/bUvffeW6Kh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E+ajad68eVq/fn3YskGDBqlKlSouR+QdEjAAMad+/fqOc71yc3O1aNGiqLa3cOFCx7Izzjgjqm0BpSHSWl+xsptDbm6uxowZE7asUqVKGj58uMsReYsEDEBM6tChg2PZU089FbV21q1bp/fff79YcQCx4Kuvvoo4r+qSSy5xMRpn999/v+Nq+oMHDy53vc0kYABiUq9evRzL0tLS9N577zmWF8Wdd96pI0eOhC2Lj49X69ato9KOl3r16hXx9UTZdfDgQd14443Kzc0NW960aVNdeOGFLkdV0MKFCzVhwoSwZfXq1dO9997rckTeIwEDEJMuv/zyiHdvXXXVVVq3bl2J2njwwQcd95uUpGuvvdYXd0GOHDlSI0eO9DqMcik1NVXLly8/9onFcPDgQfXp00effvqp4zkjRozw/D38/vvvq1+/fo5fdCZPnhxTNwq4hQQMQEyqV6+ehgwZ4li+fft2JSYm6pNPPily3UeOHNHo0aPDbsKdr0aNGrrllluKXDcQLD09Xeeff7569eqlTz75JOISK0Xx2Wef6fzzz4+4tMiZZ56pG264oVj133rrrZo7d65jz1phHDlyRPfff7969uypffv2hT3nmmuu0cCBA4vdRplmreXBw5VHu3btLFAUO3futCeeeKJV3pZjYR8VK1a0N954o127du0x68vNzbVz5syxbdu2jVinJDtx4kQXrtAdnTt3tp07d/Y6jHKpd+/ef3hfNW7c2A4fPtx+8sknNicnp0h1HTx40M6dO9f26dPHGmMivn+rVKliv/jii2LHfc4551hJNj4+3o4YMcIuXrzYHjlypFDP3bt3r3322Wdt8+bNI8bYoUMHe+DAgWLHWFZIWmHD/E00eWVA6UtISLArVqzwOgyUMR9++KG6devmOHyRr0KFCmrdurUuvPBCNW/eXPXr11f16tW1c+dO/frrr/r888/18ccfa9u2bcdsMykpSfPnz1eFCv4YJEhMTJTkvP0LSs+ll16qN998M2xZxYoVdeaZZ6pNmzY6/fTTVbduXdWtW1d16tTR4cOHtWfPHu3Zs0fr1q3T6tWrtXr1aseepGBxcXGaOXOm+vbtW+y427RpU2DD7Dp16uicc85RmzZt1KxZM9WrV+/3WHfu3Kn169drxYoVWrp06THXnmvdurU+/PBD1a9fv9gxlhXGmC+stQU2uGQhVgAx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\n",
      "text/plain": [
       "<Figure size 576x576 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import mglearn\n",
    "mglearn.plots.plot_confusion_matrix_illustration()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "> 混淆矩阵主对角线上的元素是正确的分类，而其他元素则告诉我们一个类别中有多少样本被错误地划分到其他区域"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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8vskQwVUJETOOQYOHBh2jFB17NiRjh07hh1D0qBKlSrUrVuXn/70p7Rt25aBAweycOFCvvjiC8aMGUO9evUSWt/XX3/NTTfdlKK0samAioTs1VdfZcmSJWHHEAnNkUceyb333su6devo0aNHQs998803mTZtWoqSlU4FVCQDDBgwIOwIIqGrUaMGzz77LBMnTqRSpfjL0/Dhwzlw4EAKkxVPBVQkxS699NKYbd555x3+8pe/pCGNSObr2bMnubm5cbf/6KOPePnll1OYqHgqoCIpNnLkyLhO4D548OBQvkWLZKIBAwZw5ZVXxt0+jGFcFVCRFPuf//kfrr322pjt3n///dD25YQpJycnZVf/kPLtoYce4rDD4rvmycKFC9m9e3eKExWmAiqSBsOHD6dKlSox2w0dOpR9+/alIVHmUAGVkjRq1Ihf//rXcbX97rvveOedd1KcqDAVUJE0OOWUU7jllltitlu/fj0TJ05MQ6LMsXXrVl2dRkp06623xt1WBVSkghoyZAg1a9aM2S43N5dvv/02DYkyQ5cuXejSpUvYMSRDnXPOORx++OFxtV2zZk2K0xSmAiqSJscffzx33nlnzHZfffUV48ePT0MikcxXpUoVzjvvvLjafvbZZylOU5gKqEga3XvvvRx99NEx240dO5Zt27alIZFI5mvSpElc7TZs2JDiJIWpgIqk0THHHEP//v1jttu5cydjxoxJQyKRzFe7du242u3cuTPFSQpTARVJs9/97ndxnfPz8ccf54svvkhDIpHMFm8BTfdFCVRARdKsZs2aDBkyJGa7PXv2cP/996chUbh69epFr169wo4hGaxq1apxtfv+++9TnKQwFVCREPzmN7/h5JNPjtlu8uTJfPTRR2lIFJ5u3brRrVu3sGNIBot3PkA8s9zLkgqoSAiqVKnC8OHDY7bbv39/XL3V8mzDhg1pn/wh5YsKqIgUcu211/Kzn/0sZruZM2fy3nvvpSFROG644QZuuOGGsGNIBot3LsDxxx+f4iSFqYCKhKRSpUqMHDkyZjtddFsOdcuWLYur3YknnpjiJIWpgIqE6LLLLqN169Yx2y1cuJA33ngjDYlEMssnn3zCxo0b42rbuHHjFKcpTAVUJGSjR4+Oq50uui2Hoj//+c9xt23ZsmUKkxSlAioSsgsuuIAOHTrEbLdixYpQLhosEpa9e/fy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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "mglearn.plots.plot_binary_confusion_matrix()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Most frequent class:\n",
      "[[403   0]\n",
      " [ 47   0]]\n",
      "\n",
      "Dummy model:\n",
      "[[366  37]\n",
      " [ 44   3]]\n",
      "\n",
      "Decision tree:\n",
      "[[390  13]\n",
      " [ 24  23]]\n",
      "\n",
      "Logistic Regression\n",
      "[[402   1]\n",
      " [  6  41]]\n"
     ]
    }
   ],
   "source": [
    "print(\"Most frequent class:\")\n",
    "print(confusion_matrix(y_test,pred_most_frequent))\n",
    "print(\"\\nDummy model:\")\n",
    "print(confusion_matrix(y_test,pred_dummy))\n",
    "print(\"\\nDecision tree:\")\n",
    "print(confusion_matrix(y_test,pred_tree))\n",
    "print(\"\\nLogistic Regression\")\n",
    "print(confusion_matrix(y_test,pred_logreg))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 几种总结混淆矩阵地方法\n",
    "\n",
    "<p>与精度的关系:我们之前一直用地方法-计算精度.精度=(TP+TN)/(TP+TN+FN+FP)</p>\n",
    "<p>准确率（precision）：（TP）/(TP+FP).准确率度量的是被预测为正例的样本中有多少是真正的正例.如果目标是限制正例的数量，则可以使用准确率作为指标</p>\n",
    "<p>召回率(recall):度量的是正类样本中有多少被预测为正类.公式:(TP)/(TP+FN).如果我们需要找到所有正类样本，即避免假反例。则可使用召回率。最典型的例子是前面的癌症阴性与阳性诊断</p>\n",
    "<p>f-分数:该方法将准确率与召回率汇总起来生成二者的调和平均数，公式F=2.((precision*recall)/(percision+recall)).该指标同时考虑了准确率与召回率，所以它对于不平衡的二分类数据集来说，是一种很好的度量</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "f1 score most frequent:0.00\n",
      "f1 score dummy:0.07\n",
      "f1 score tree:0.55\n",
      "f1 score logistic:0.92\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import f1_score\n",
    "print(\"f1 score most frequent:{:.2f}\".format(f1_score(y_test,pred_most_frequent)))\n",
    "print(\"f1 score dummy:{:.2f}\".format(f1_score(y_test,pred_dummy)))\n",
    "print(\"f1 score tree:{:.2f}\".format(f1_score(y_test,pred_tree)))\n",
    "print(\"f1 score logistic:{:.2f}\".format(f1_score(y_test,pred_logreg)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "       False       0.90      1.00      0.94       403\n",
      "        True       0.00      0.00      0.00        47\n",
      "\n",
      "    accuracy                           0.90       450\n",
      "   macro avg       0.45      0.50      0.47       450\n",
      "weighted avg       0.80      0.90      0.85       450\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "E:\\myAnaconda\\lib\\site-packages\\sklearn\\metrics\\_classification.py:1221: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.\n",
      "  _warn_prf(average, modifier, msg_start, len(result))\n"
     ]
    }
   ],
   "source": [
    "# 对准确率,召回率,f-分数做总结\n",
    "from sklearn.metrics import classification_report\n",
    "print(classification_report(y_test,pred_most_frequent))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "    not nine       0.90      0.89      0.89       403\n",
      "        nine       0.12      0.13      0.12        47\n",
      "\n",
      "    accuracy                           0.81       450\n",
      "   macro avg       0.51      0.51      0.51       450\n",
      "weighted avg       0.82      0.81      0.81       450\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(classification_report(y_test,pred_dumy,target_names=['not nine','nine']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "    not nine       0.99      1.00      0.99       403\n",
      "        nine       0.98      0.87      0.92        47\n",
      "\n",
      "    accuracy                           0.98       450\n",
      "   macro avg       0.98      0.93      0.96       450\n",
      "weighted avg       0.98      0.98      0.98       450\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(classification_report(y_test,pred_logreg,target_names=['not nine','nine']))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 4.考虑不确定度\n",
    "<p>大多数分类器提供了一个decision_function或predict)proba方法来评估预测的不确定度。在二分类问题中，我们使用0作为决策函数的阈值,使用0.5作为predict_proba的阈值</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "from mglearn.datasets import make_blobs\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.svm import SVC\n",
    "X,y = make_blobs(n_samples=(400,50),cluster_std=[7.0,2],random_state=22)\n",
    "X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=0)\n",
    "svc = SVC(gamma=0.05).fit(X_train,y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x576 with 6 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import mglearn\n",
    "mglearn.plots.plot_decision_threshold()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.97      0.89      0.93       104\n",
      "           1       0.35      0.67      0.46         9\n",
      "\n",
      "    accuracy                           0.88       113\n",
      "   macro avg       0.66      0.78      0.70       113\n",
      "weighted avg       0.92      0.88      0.89       113\n",
      "\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import classification_report\n",
    "print(classification_report(y_test,svc.predict(X_test)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>假设应用中类别1具有高召回率((TP)/(TP+FN))更加重要，正如前面癌症筛查例子。意味着我们愿意冒更大的风险有更多的假正例（假的类别1）以获取更多的真正例（可增大召回率）.我们可以通过改变决策阈值使其不等于0来实现。当decision_function的值大于0将会被划分为类别1.我们希望将更多的点划分为类别1，所以要减小阈值</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      0.82      0.90       104\n",
      "           1       0.32      1.00      0.49         9\n",
      "\n",
      "    accuracy                           0.83       113\n",
      "   macro avg       0.66      0.91      0.69       113\n",
      "weighted avg       0.95      0.83      0.87       113\n",
      "\n"
     ]
    }
   ],
   "source": [
    "y_pred_lower_threshold = svc.decision_function(X_test)> -0.8 # 大于-0.8就可被视为正类\n",
    "print(classification_report(y_test,y_pred_lower_threshold))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 5.准确率与工作率曲线\n",
    "<P>在实际应用中,我们通常需要兼顾召回率和准确率,而一种叫做准确率-召回率的工具可以做到这一点。你可以在sklearn.metrics模块中找到计算准确率-召回率曲线的函数。这个函数需要真实标签与预测的不确定度，后者由decision_function和predict_proba给出</P>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.32142857 0.2962963  0.30769231 0.32       0.33333333]\n",
      "[1.         0.88888889 0.88888889 0.88888889 0.88888889]\n",
      "[-0.7512563  -0.58749402 -0.48739733 -0.44364565 -0.40435353]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import precision_recall_curve\n",
    "# 该函数返回一个列表，\n",
    "# 包含顺序排序的所有可能阈值（在决策函数中出现的所有值）对应的准确率和召回率\n",
    "precision,recall,thresholds = precision_recall_curve(y_test,svc.decision_function(X_test)) \n",
    "print(precision[:5])\n",
    "print(recall[:5])\n",
    "print(thresholds[:5])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Recall')"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "# 使用更多数据点获得更加平滑的曲线\n",
    "X,y = make_blobs(n_samples=(4000,500),cluster_std=[7.0,2])\n",
    "X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=0)\n",
    "svc = SVC(gamma=0.5).fit(X_train,y_train)\n",
    "precision,recall,thresholds = precision_recall_curve(y_test,svc.decision_function(X_test))\n",
    "# 找到最接近于0的阈值\n",
    "close_zero = np.argmin(np.abs(thresholds))\n",
    "plt.plot(precision[close_zero],recall[close_zero],'o',markersize=10,label='threshold zero',fillstyle='none',c='k',mew=2)\n",
    "plt.plot(precision,recall,label='precision recall curve')\n",
    "plt.xlabel(\"Percision\")\n",
    "plt.ylabel(\"Recall\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<P>如图所示,当曲线越接近右上角，则准确率和召回率越高，此时分类器越好。我们发现曲线的左侧分类效果较好,既能保证较好的准确率又能保证较好的召回率</P>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x1f10f20c640>"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "rf = RandomForestClassifier(n_estimators=100,random_state=0,max_features=2)\n",
    "rf.fit(X_train,y_train)\n",
    "# RandomForestClassifier有predict)=_porba,但没有decision_function\n",
    "precision_rf,recall_rf,thresholds_rf = precision_recall_curve(y_test,rf.predict_proba(X_test)[:,1])\n",
    "plt.plot(precision,recall,label='svc')\n",
    "plt.plot(precision[close_zero],recall[close_zero],'o',markersize=10,label='threshold zero svc',fillstyle=\"none\",c='k',mew=2)\n",
    "plt.plot(precision_rf,recall_rf,label='rf')\n",
    "\n",
    "close_default_rf=np.argmin(np.abs(thresholds_rf-0.5))\n",
    "plt.plot(precision_rf[close_default_rf],recall_rf[close_default_rf],\"^\",c='k',markersize=10,label='thresholds 0.5 rf',fillstyle=\"none\",mew=2)\n",
    "plt.xlabel(\"Precision\")\n",
    "plt.ylabel(\"Recall\")\n",
    "plt.legend(loc='best')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "f1_score of random_score forest: 0.531\n",
      "f1_score of svc_score:0.642\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import f1_score\n",
    "print(\"f1_score of random_score forest: {:.3f}\".format(f1_score(y_test,rf.predict(X_test))))\n",
    "print(\"f1_score of svc_score:{:.3f}\".format(f1_score(y_test,svc.predict(X_test))))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 总结准确率-召回率的一种方法是计算该曲线的积分或面积,也叫做平均准确率\n",
    "<p>我们可以使用average_precision_score来计算平均准确率</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "随机森林的平均准确率:0.511\n",
      "核支持向量机的平均准确率:0.582\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import average_precision_score\n",
    "ap_rf = average_precision_score(y_test,rf.predict_proba(X_test)[:,1])\n",
    "ap_svc = average_precision_score(y_test,svc.decision_function(X_test))\n",
    "print(\"随机森林的平均准确率:{:.3f}\".format(ap_rf))\n",
    "print(\"核支持向量机的平均准确率:{:.3f}\".format(ap_svc))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 6.受试者工作特征(ROC)与AUC\n",
    "<p>受试者工作特征曲线,简称ROC曲线。与准确率-召回率曲线类似，ROC曲线考虑了分类器的所有可能阈值,但他显示的是真正例率和假正例率。</p>\n",
    "<p>真正例率(TPR)只是召回率的一个别名，即正类样本中有多少被检测为正类。TPR=(TP/(TP+FN))</p>\n",
    "<p>假正例率(FPR)指的是假正例占所有反类样本的比例。FPR=(FP/(FP+TN))</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x26f56d40820>"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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58+fz7vvvkt2djbz5s0DItNGT5s2jdNOO41rr722YSGaoUOHcueddzJp0iSefvppXnzxRSZMmMDYsWO5+uqrG6aUnj9/PpmZmWRlZR22UM2KFSv4+te/zrBhwxrODtydefPmMXr0aM444wyeeuqpZjXu37+fGTNmkJWVxfTp09m/f3+zNqWlpWRnZ5Odnc0ZZ5zRMI/Ru+++y5QpUzjzzDM555xzeOedd4DIGcrtt9/O+eefzx133EFZWRlnn302WVlZ5OfnxzRDant0jUBEOkX9amEjR45ss92IESOA2KZ4bmzhwoVs2LChYZ6eV155hbVr17Jx40ZOPfVUJk6cyGuvvcakSZMA6N69OytXrmTnzp1ceeWVLF++nBNPPJGf/exn3HvvvQ0XtN955x3M7LDVzrZt28bKlSt55513yM3NZdq0aTz77LOUlZWxbt06du7cyVlnncW55557WI2/+c1vOOGEE1i/fj3r169n7NixzfqRk5PT0Id58+YxZcoUAGbPns3ixYsZPnw4q1ev5uabb+bll18GDp/qOisri1//+tecd955/OhHP+LHP/4xixYt6tC/ZVMKAhHpFPWLsWzZsqXNdvUTv8UyxXN7xo0b13D2UT89dX0Q1M/188Ybb7Bp06aGhWA+//xzJkyYQM+ePenevTs33HADl1566WHXG6644gpSUlLIzMzkb3/7GwArV65k5syZpKamMmDAAM477zzefPNNsrKyGt63YsUKbr31ViAyv1HjfU394Q9/4K233uLFF19k3759rFq1iquvvrph/2effdbwff1U13v27GH37t2cd955AHz7298+7D1HKtAgMLMpwH8AqcBD7r6wyX6L7r8E+BS4zt3fCrImEQlGbm4ut912GyUlJdTU1LQ4PFRdXU1xcTEpKSnk5uYe9c/80pe+1PB9amrqYWPo9dNDuzsXXnghTz75ZLP3//Wvf+Wll15iyZIlFBYWNvwF3vi49cNNsc7LFsv6Bxs3bmTBggWsWLGiYUGb3r17tzoraeOproMQ2DUCM0sF7gemApnATDPLbNJsKjA8+jUb+E1Q9YhIsIYMGUJ+fj4HDx4kLy+v2cXg6upqrrjiCmpra8nPz+/ww2U9evTg448/7nBdZ599Nq+99hoVFRUAfPrpp5SXl7Nv3z727NnDJZdcwqJFi9qdGvrcc8/lqaee4tCh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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 使用roc_curve函数计算ROC曲线\n",
    "from sklearn.metrics import roc_curve\n",
    "from mglearn.datasets import make_blobs\n",
    "from sklearn.model_selection import train_test_split\n",
    "import matplotlib.pyplot as plt\n",
    "from sklearn.svm import SVC\n",
    "import numpy as np\n",
    "X,y = make_blobs(n_samples=(4000,500),cluster_std=[7.0,2])\n",
    "X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=0)\n",
    "svc = SVC(gamma=0.05).fit(X_train,y_train)\n",
    "fpr,tpr,thresholds = roc_curve(y_test,svc.decision_function(X_test))\n",
    "plt.plot(fpr,tpr,label=\"ROC curve\")\n",
    "plt.xlabel(\"FPR\")\n",
    "plt.ylabel(\"TPR(recall)\")\n",
    "# 找到最接近与0的值\n",
    "close_zero = np.argmin(np.abs(thresholds))\n",
    "plt.plot(fpr[close_zero],tpr[close_zero],'o',markersize=10,label='threshold zero',fillstyle='none',c='k',mew=2)\n",
    "plt.legend(loc=4)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>对于ROC曲线来说，理想的曲线靠近左上角,我们往往希望真正例率(召回率)很高,同时保持假正例率很低。。从图中我们可以看到,与默认阈值0相比,我们可以得到明显更高的召回率.同时，我们要注意,不应该在测试集上选择阈值,而应该在单独的验证集上选择</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x26f5a05a640>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3deXxU9bn48c+TRfadyBYQEJA1RIiI4gK2KiomRKEQbEXUWheUy716RSu1FmxdWmt9YevPq1y1NTdgFBL7cmutFAEXQAKyE4NAWISwSVgzmef3x0zGycoE5swkOc/79corZ/nOOc/JMs98z/J8RVUxxhjjXjHRDsAYY0x0WSIwxhiXs0RgjDEuZ4nAGGNczhKBMca4XFy0A6it9u3ba/fu3aMdhjHG1CsrV64sUtWEqtbVu0TQvXt3VqxYEe0wjDGmXhGRbdWts1NDxhjjcpYIjDHG5erdqSFjjHEbj8fDnDlzAJg6dSpxceF967ZEYIwxdVxmZibTp08HoG3bttx6661h3b6dGjLGmDrM4/Ewa9aswPysWbPweDxh3YdjiUBE5orIXhFZW816EZEXRCRfRNaIyBCnYjHGmPoqMzOT/Px8evXqRa9evcjPzyczMzOs+3CyR/AaMLqG9dcBvf1fdwF/cTAWY4ypd4J7AzNnzmTmzJlA+HsFjl0jUNXFItK9hiZpwBvqq4P9uYi0FpFOqrrbqZiMMWdJFdTr+04I0+ot/zq0hung12st96Gg1HIfXt9rarWP4LhC28fyrQdYU3iQGF+ACCDqRcqm8QZ99w0LEOPf1uIVG8nPz6dj+1Y02r2U451SyvUKwnWtIJoXi7sAO4LmC/3LKiUCEbkLX6+Bbt26RSS4M+b1guf4D/NV/oFQyz88h/6Zqnw9EdhH7f+ZavyHrTf7iMSbW232cbrYK+zDnJGL/F+15fEqj/3jKABPX3aS8cfnsexYPDNnzmTy5MnMmjWLSZMmheUOomgmAqlimVbVUFVfBl4GSElJqbJNnbBtGeTcBwcKoh2JSwhIDIiEMF2hvcT456ubpprl1e1DKi+vaR81tqlqH1S9vNp9yGmOr77sw3/2OsR9fLJ5H599cwCVss/b4MXXtuxzd9k69X/+VmJ+aOvfn29dTNB6/zKJ8b9JiX+7BG2r4rZ9X5v3FtPr3Ja8MnlYDT+3yj+TzL/+jfwDt9OrVy8mvbWBmLg4LgOG+08XhbNXEM1EUAh0DZpPBHZFKZba+3YJrFv4w/zRfbA+B1p3gx89DjGxP6wr+8cP+Z/pdG9uVL08rPs4gzc3iMA+gl9jGqrML7aTk7ez1q/7YmsJ0JqLe7QNf1BnqEOntlyV3AWatQv5NR6Ph1lP/hbwXRsI/tQfFxcX9l5BNBNBLjBVRLKAi4HD9eb6gNcLuff7Pvk38f/BiUDK7XD1b6BR8+jGZ0w9l5O3k/W7v6d/p5a1et3FPdqSltyFSRfX8VPIpxF8p9CkSZMqrZ80aVJYewXi1JjFIvJ/wEigPfAd8DgQD6CqL4mIAHPw3Vl0DJiiqqetJpeSkqJRLzr37VJ47Xq46RVIGl9u1Zl+kjHG/KAsCcz7xSXRDiXiPB4P/fr1Iz8/P6T2vXr1YsOGDaftFYjISlVNqWqdk3cNZZxmvQL3ObX/cAt+gx9bPJ8M4PalrTj62Wfl2n2x9QBAneqaGlPf9O/UkrTkLtEOIyrKegOhCkevwEpMhCgnbyf5u4v4UfvvufT4InbFduFoTItK7RpK19QYEx233npr2EtInI4lghDFqof58U9wftEW34LBGcxLd1+31RjT8FgiCEHmF9vptyOL8+O3wKUPQNdh0O3SaIdljDFhYYkgBEtW5vG7uHfY32og7a7+jd26aIxpUCwRhODRA7+klRyDgT+2JGCMaXCsDHUNMr/YzoT/9xnxniPsiu0CI2dEOyRjjAk7SwQ1KHuoJTYmjuMdL4L4JtEOyRhjws5ODVWwfft2cnNzOXToEFvWHqR70mW0jymhfcc20Q7NGGMcYYnAb8+ePUydOpUFCxbg9f5QaTFv/vOM6xvDnD90o2MU4zPGGKdYIsCXBEaMGEFBQQHx8fGkp6ez/mgzthXkcyr/M97e4GHVvX9i2ee30KFDh2iHa4wxYWXXCICpU6dSUFDAkCFDKCgoIDs7m0Fj7+aWab9k67RmDElsQsG327nvvnpTEcMYY0Lm+kSwfft2FixYQHx8PDk5OSQmJgbWxeEhsWUMC/8yi7i4OBYsWMCOHTtq2JoxxtQ/rk8Eubm5eL1eUlNTA0kg84vtfLH1AM293wPQtXMCaWlpeL1ecnNzoxmuMcaEnesTwaFDhwC44IILAsvKqoz+JMH/6b9JG/r06QPAwYMHIxugMcY4zPWJoHXr1gBs2rSp3PKLe7QlJbGZb6bbpWzevBmANm3sNlJjTMPi+kSQmppKTEwMubm5FBYWBk4LoQprs+Hc/uzYf5ScnBxiYmJITU2NdsjGGBNWrk8E3bp1Iz09nZKSEtLS0vi/f30FQEbfONi9mh2db2Bsejoej4f09HS6du16mi0aY0z94thQlU5xYqjK4OcIJCaWLoMv52cXncvmT98hZ4vi8ZTSs2dPli1bZs8RGGPqpZqGqnR9jwCgY8eOLF26lJtvvhlUKVy1iN+9PJ+3N3jwepWbb77ZkoAxpsGyJ4v9OnbsSHZ2Njf+biE71yzhpvY7afPNQlJ/+z5dk0dGOzxjjHGMJYIKmrbtQO+RN/PYiF2Q/R506RTtkIwxxlF2aqg69ezaiTHGnClLBNU5stv3vWm76MZhjDEOs0QQJPAMAcDuNdAyEZq1j25QxhjjMEsEQcpKS6Qld4FjRdDCRiAwxjR8lgj8ynoDF/doy6SLu8Hxg9DEykkYYxo+SwR+5XoDYInAGOMalgiCBHoD4E8EraMbkDHGRIAlguqUlkBco2hHYYwxjrNEYIwxLmeJoCqqoN5oR2GMMRHhaCIQkdEisklE8kVkRhXrW4nIuyKyWkTWicgUJ+MJ2Zp54DkBrazktDGm4XMsEYhILPAicB3QH8gQkf4Vmt0HrFfVwcBI4A8ico5TMYXk+EHIvd833eOKqIZijDGR4GSPYBiQr6oFqnoKyALSKrRRoIWICNAcOAB4HIzp9Na+A6Wn4PaP4Nx+UQ3FGGMiwclE0AXYETRf6F8WbA7QD9gFfA1MU618cl5E7hKRFSKyYt++fU7F63O0yPc98SJn92OMMXWEk4lAqlhWsaTntUAe0BlIBuaISMtKL1J9WVVTVDUlISEh/JEaY4yLOZkICoHgq62J+D75B5sCvKM++cBWoK+DMVWpXLE5Y4xxGScTwXKgt4j08F8AngjkVmizHfgRgIh0AC4AChyMqUqVyksYY4yLOJYIVNUDTAU+BDYA81V1nYjcLSJ3+5vNAi4Vka+Bj4GHVbXIqZhqUq68hDHGuIijQ1Wq6nvAexWWvRQ0vQu4xskYau3k91R9ecMYYxome7I4WGkJfP0W9L4GYuxHY4xxB3u3C1a8F4q/gz7XRjsSY4yJGEsEwTwnfN+t6qgxxkUsEQT78mXfd3ui2BjjIpYIghVt9n3vmBTdOIwxJoIsEVSUeBHExkc7CmOMiRjXJ4LAU8Wq8M2/fN+NMcZFXJ8Iyp4qTk/y1zCKcfTRCmOMqXNcnwjA91TxxIv8ZZHs1lFjjMtYIjDGGJezRFDGczzaERhjTFRYIiizPsf3vXGr6MZhjDERZomgzIePgcRCyu3RjsQYYyLKEgEQo6Vw6gh0vRjEKo8aY9zFEgHQTIt9E/3TohuIMcZEgSUCoJnXnwiatIluIMYYEwWuTgRlTxU39x7xLbBEYIxxIVcngrKniq85L9a3oGnbKEZjjDHR4epEAL6niq/s7PHNtOgU3WCMMSYKXJ8IAPh+N0gMNO8Q7UiMMSbiLBGAb8D6c1pArBWcM8a4jyWCMvb4gDHGpSwRGGOMy1kiMMYYl7NEYIwxLmeJwBhjXM4SgTHGuJwlAmOMcTlLBMYY43KWCIwxxuUcTQQiMlpENolIvojMqKbNSBHJE5F1IvJvJ+MxxhhTmWM1FUQkFngRuBooBJaLSK6qrg9q0xr4MzBaVbeLyLlOxVOj0pKo7NYYY+oCJ3sEw4B8VS1Q1VNAFlBxCLBJwDuquh1AVfc6GE+VYtUDm96HLkMjvWtjjKkTnEwEXYAdQfOF/mXB+gBtRGSRiKwUkVur2pCI3CUiK0Rkxb59+8IaZO+SjXBkFwy9LazbNcaY+sLJRFBVGTetMB8HDAVuAK4FZopIn0ovUn1ZVVNUNSUhISGsQfY8tdk30e3SsG7XGGPqCyfrLhcCXYPmE4FdVbQpUtWjwFERWQwMBjY7GFc5TfS4b6Jpu0jt0hhj6hQnewTLgd4i0kNEzgEmArkV2uQAl4tInIg0BS4GNjgYkzHGmAoc6xGoqkdEpgIfArHAXFVdJyJ3+9e/pKobROQDYA3gBV5R1bVOxWSMMaYyR4fkUtX3gPcqLHupwvyzwLNOxmGMMaZ69mSxMca4nCUCY4xxOUsExhjjcpYIjDHG5SwRGGOMy1kiMMYYl6t1IhCRWBG5xYlgoqG190C0QzDGmKiqNhGISEsReURE5ojINeJzP1AA/CRyITpryIkvfBNSVWkkY4xp+Gp6oOyvwEHgM+BO4CHgHCBNVfMiEFtEeCUGul9uicAY41o1JYKeqjoIQEReAYqAbqp6JCKRRUhzbzF0GBjtMIwxJmpqukYQGLZLVUuBrQ0tCcSqh6Z6DJq0iXYoxhgTNTX1CAaLyPf8MK5Ak6B5VdWWjkfnsKbeYt9Ek9bRDcQYY6Ko2kSgqrGRDCQa4vD4JxpFNxBjjImiahOBiDQG7gZ64SsTPVdVPZEKzBhjTGTUdI3gdSAF+Bq4HvhDRCKKkMwvtrNq+6Foh2GMMVFX0zWC/kF3Db0KfBmZkCIjJ29ntEMwxpg6IdS7hhrkKaELu9lFYmOMqalHkOy/Swh8dwo1uLuGjDHG1JwIVqvqhRGLxBhjTFTUdGpIIxZFlDTSk76JWLt91BjjXjX1CM4Vkf+sbqWqPudAPBHVtrTIN9GyU3QDMcaYKKopEcQCzfnhyeIGp613v2+ihSUCY4x71ZQIdqvqbyIWSRS0LPU/R9D83OgGYowxUVTTNYIG2xMo01yPgMRAo1bRDsUYY6KmpkTwo4hFESXNvUegcWuIsRE7jTHuVe07oKo2+DEcm3uPWAlqY4zrufqjcFM9Bo3tuThjjLu5OhEIXpAGX23bGGNq5OpEYIwxxhKBMca4niUCY4xxOUcTgYiMFpFNIpIvIjNqaHeRiJSKyDgn4zHGGFOZY4lARGKBF4HrgP5Ahoj0r6bd08CHTsVijDGmek72CIYB+apaoKqngCwgrYp29wNvA3sdjKWczC+288XWBv+YhDHGhMTJRNAF2BE0X+hfFiAiXYB04KWaNiQid4nIChFZsW/fvrMOLCdvJ405SfLJlbig2rYxxtTIyURQVa2iiu+6zwMPq2ppTRtS1ZdVNUVVUxISEsIS3L0dN/omGtkDZcYYd6up+ujZKgS6Bs0nArsqtEkBskQEoD1wvYh4VHWhg3EB0L7UfyZqwl+d3pUxxtRpTiaC5UBvEekB7AQmApOCG6hqj7JpEXkN+HskkgBAm9L9vt5AoxaR2J0xxtRZjiUCVfWIyFR8dwPFAnNVdZ2I3O1fX+N1Aac19x6Bpm2jGYIxxtQJTvYIUNX3gPcqLKsyAajqbU7GUrUGP+SCMcaclj1ZbIwxLufaRNDKewga28hkxhjjykQg6uX8ks3Q+cJoh2KMMVHnykTQsXQnzfQodBka7VCMMSbqXJkILj2+2DfR/bLoBmKMMXWAKxPBZcf/xZpzLoS2PU7f2BhjGjj3JQJVEkr3sjW+V7QjMcaYOsF9ieDYfuIp4UBsu2hHYowxdYL7EkGxr8bQoRh7qtgYY8CNiUC9AHhdeOjGGFMVezc0xhiXs0RgjDEuZ4nAGGNczhKBMca4nCUCY4xxOUfHI6iL3vt6N9dHOwhjHFJSUkJhYSEnTpyIdigmSho3bkxiYiLx8fEhv8Z1ieCTTXu5Hriohz1QZhqewsJCWrRoQffu3fGPBW5cRFXZv38/hYWF9OgRegkd154auqJ3+2iHYEzYnThxgnbt2lkScCkRoV27drXuEbouEQga7RCMcZQlAXc7k9+/6xJBS+9h34QNXG+MMYALE0Gb0v2+iRadohuIMQ1UbGwsycnJDBw4kBtvvJFDhw4F1q1bt46rrrqKPn360Lt3b2bNmoXqD730999/n5SUFPr160ffvn158MEHq9xHqO2cMnfuXAYNGkRSUhIDBw4kJyeH1157jYyMjHLtioqKSEhI4OTJk5SUlDBjxgx69+7NwIEDGTZsGO+//35E466O6xJBW68/EbTsHN1AjGmgmjRpQl5eHmvXrqVt27a8+OKLABw/fpzU1FRmzJjB5s2bWb16NcuWLePPf/4zAGvXrmXq1Kn87W9/Y8OGDaxdu5aePXtW2n6o7apTWlp6VsdXWFjIk08+yZIlS1izZg2ff/45SUlJ3HTTTfzjH//g2LFjgbbZ2dmkpqbSqFEjZs6cye7du1m7di1r167l3Xff5ciRI2cVS7i47q6htqVFFEtzmsc3iXYoxjjqiXfXsX7X92HdZv/OLXn8xgEht7/kkktYs2YNAJmZmYwYMYJrrrkGgKZNmzJnzhxGjhzJfffdxzPPPMMvf/lL+vbtC0BcXBz33ntvpW3W1O62225jzJgxjBs3DoDmzZtTXFzMokWLeOKJJ+jUqRN5eXnceOONnHfeeYHX/frXv6ZFixb813/9F88++yzz58/n5MmTpKen88QTT5Tb/969e2nRogXNmzcP7KNs+oorruDdd99lwoQJAGRlZfHYY49x7Ngx/ud//oetW7fSqFEjADp06MBPfvKTkH+WTnJfj6B0Pwdi7Y4hY5xWWlrKxx9/TGpqKuA7LTR0aPlxws8//3yKi4v5/vvvWbt2baX1VQm1XUVffvklTz75JOvXr2fixInMmzcvsG7+/PmMHz+ejz76iC1btvDll1+Sl5fHypUrWbx4cbntDB48mA4dOtCjRw+mTJnCu+++G1iXkZFBVlYWALt27WLz5s2MGjWK/Px8unXrRsuWLWsddyS4rkfQxrufgzFt6RbtQIxxWG0+uYfT8ePHSU5O5ttvv2Xo0KFcffXVgO8e9+ruaInEnU7Dhg0L3Ft/4YUXsnfvXnbt2sW+ffto06YN3bp144UXXuCjjz7iwgsvBKC4uJgtW7ZwxRVXBLYTGxvLBx98wPLly/n444+ZPn06K1eu5Ne//jVjxozh3nvv5fvvv2f+/PmMGzeO2NhYx4/tbFmPwBgTVmXXCLZt28apU6cC1wgGDBjAihUryrUtKCigefPmtGjRggEDBrBy5crTbr+mdnFxcXi9vjFHVJVTp04F1jVr1qxc23HjxpGdnc28efOYOHFi4DWPPPIIeXl55OXlkZ+fzx133FFpPyLCsGHDeOSRR8jKyuLtt98OHPvo0aNZsGABWVlZgYvHvXr1Yvv27XXmmkBF7koEpR5aew/aMJXGRECrVq144YUX+P3vf09JSQm33HILS5Ys4Z///Cfg6zk88MAD/Pd//zcADz30EL/97W/ZvHkzAF6vl+eee67Sdmtq171790CSyMnJoaSkpNr4Jk6cSFZWFtnZ2YFrCtdeey1z586luLgYgJ07d7J3795yr9u1axdfffVVYD4vL4/zzjsvMJ+RkcFzzz3Hd999x/DhwwHf9ZA77riDBx54IJCcdu/ezd/+9reQfpZOc1ciOLqXGLwciLEegTGRcOGFFzJ48GCysrJo0qQJOTk5zJ49mwsuuIBBgwZx0UUXMXXqVACSkpJ4/vnnycjIoF+/fgwcOJDdu3dX2mZN7X7+85/z73//m2HDhvHFF19U6gUEGzBgAEeOHKFLly506uS7nfyaa65h0qRJXHLJJQwaNIhx48ZV+hRfUlLCgw8+SN++fUlOTmbevHn86U9/Cqy/5ppr2LVrFxMmTCh3ymv27NkkJCTQv39/Bg4cyNixY0lISDjzH24YSfA9vPVBSkqKVuxehqxwJbxyFU+3+TUPT5se3sCMqQM2bNhAv379oh2GibKq/g5EZKWqplTV3l09giO7ADhop4aMMSbA0UQgIqNFZJOI5IvIjCrW3yIia/xfy0RksJPxcHQfAIdi2ji6G2OMqU8cSwQiEgu8CFwH9AcyRKR/hWZbgStVNQmYBbzsVDwAXxb4nir2Uvdv5zLGmEhxskcwDMhX1QJVPQVkAWnBDVR1maoe9M9+DiQ6GA9rCn01T0YP7Ojkbowxpl5xMhF0AXYEzRf6l1XnDqDKCkwicpeIrBCRFfv27TvrwG4a4mi+McaYesXJRFDVo4JV3qIkIqPwJYKHq1qvqi+raoqqptSV262MMaahcDIRFAJdg+YTgV0VG4lIEvAKkKaq+x2MxxgTAW4oQ929e/dAGeorr7ySbdu2BdaVHX/Z17fffhvR2M6Ek4lgOdBbRHqIyDnARCA3uIGIdAPeAX6mqpsdjMUYEyENvQx1mU8++YQ1a9YwcuRIZs+eHVhedvxlX927dw/L/pzkWNE5VfWIyFTgQyAWmKuq60Tkbv/6l4BfAe2AP/ufwPNU98CDMaaW3p8Be74O7zY7DoLrngq5eUMsQ13VMb7wwgsh/0zqIkefI1DV91S1j6qer6pP+pe95E8CqOqdqtpGVZP9X5YEjGkgGmoZ6oo++OADxo4dG5gvq76anJxMenp6reOMBteVoTbGNWrxyT2cGnoZ6jKjRo3iu+++49xzz63y1FB94qoSEzF4/VPO/9EZ41ZuKEMNvmsE27ZtY8CAAfzqV786bdx1masSQdvSIjzEQdO20Q7FmAavoZahDtakSROef/553njjDQ4cOFCrn09d4qpE0LF0F9/FdoQYKzFhTCQ0xDLUFXXq1ImMjIxAz6c+clUZ6q2zh3Awti1DHvlnmKMypm6wMtQGrAx19VTpWLqLPbGdox2JMcbUKe5JBKUlNNHjfB/TOtqRGGNMneKeROCnEbhNzRhj6hPXPEeQtXwHE6MdhDF1zPbt28nNzeXQoUO0bt2atLQ0unbtevoXmgbFNYkgd/VOJgL9OrWMdijGRN2ePXuYOnUqCxYsCNx3DzBt2jTS09OZM2cOHTvauB1u4ZpEUCY5sVW0QzAmqvbs2cOIESMoKCggPj6e9PR0LrjgAjZt2kROTg5vv/02q1atYtmyZXTo0CHa4ZoIcN01AmPcburUqRQUFDBkyBAKCgrIzs7mySefJDs7m61btwaW33fffbXe9qFDhwLVRAEWLVrEmDFjwhk+4Csul52dHXL7b7/9loEDB1a5buTIkZWeeI6ETZs2MXLkSJKTk+nXrx933XUXR48epV27dhw+fLhc27FjxzJ//nzAmRLclgiMcZHt27ezYMEC4uPjycnJITGx/Gh9iYmJLFy4kLi4OBYsWMCOHTuq2VLVKiaCUIWrNHRd4PF4Qmr3wAMPMH36dPLy8tiwYQP3338/zZo145prrmHhwoWBdocPH2bJkiWMGTPmrEtwV8cSgTEukpubi9frJTU1tVISKNO1a1fS0tLwer3k5uZW2aY6M2bM4JtvviE5OZmHHnoI8BVuGzduHH379uWWW24JDETTvXt3fvOb33DZZZfx1ltv8dFHH3HJJZcwZMgQxo8fHyjzMGPGDPr3709SUlK5T7+LFy/m0ksvpWfPnoHegary0EMPMXDgQAYNGlSuwmiZ48ePM3HiRJKSkpgwYQLHjx+v1GbFihWBCqKDBg0KFMX75ptvGD16NEOHDuXyyy9n48aNgK+H8p//+Z+MGjWKhx9+mLy8PIYPH05SUhLp6ekcPHiw0j52795d7ncwaNAgADIyMsjKygosX7BgAaNHj6Zp06Yhl+quNVWtV19Dhw7VM5Hxl3+rPt5S9d/PntHrjakP1q9fX+P6WbNmKaCPPvpoje0eeeQRBXTWrFm12v/WrVt1wIABgflPPvlEW7ZsqTt27NDS0lIdPny4fvrpp6qqet555+nTTz+tqqr79u3Tyy+/XIuLi1VV9amnntInnnhC9+/fr3369FGv16uqqgcPHlRV1cmTJ+u4ceO0tLRU161bp+eff76qqmZnZ+uPf/xj9Xg8umfPHu3atavu2rWrXFx/+MMfdMqUKaqqunr1ao2NjdXly5dXe0wPPvigPvjgg6qqetVVV+nmzZtVVfXzzz/XUaNGBeK54YYb1OPxqKrqoEGDdNGiRaqqOnPmTJ02bVql7c6dO1dbtmypo0eP1ueeey5wbCdPntSEhAQtKipSVdVrr71W//73v6uq6oUXXqh5eXmn/T1U9XcArNBq3letR2CMi7Ru7XugctOmTTW2Kyvo1qZNm7Pe57Bhw0hMTCQmJqbS0I0TJkwA4PPPP2f9+vWMGDGC5ORkXn/9dbZt20bLli1p3Lgxd955J++88w5NmzYNvHbs2LHExMTQv39/vvvuOwCWLFlCRkYGsbGxdOjQgSuvvJLly5eXi2fx4sX89Kc/BXx1i5KSkqqNff78+Xz11Vc89dRTFBcXs2zZMsaPH09ycjK/+MUvytVCGj9+PLGxsRw+fJhDhw5x5ZVXAjB58uQqxzSYMmUKGzZsYPz48SxatIjhw4dz8uRJzjnnHFJTU8nOzqaoqIi8vLzAYD5OsURgjIukpqYSExNDbm4uhYWFVbbZsWMHOTk5xMTEBAaVORuNGjUKTMfGxpY7h15WFE5VufrqqwPln9evX8+rr75KXFwcX375JTfffDMLFy5k9OjRVW5X/aebyr6fTijjH6xbt47HH3+crKwsYmNj8Xq9tG7dutwwlBs2bKh0LLXRuXNnbr/9dnJycoiLi2Pt2rXAD6eHsrOzSUtLIz4+Hqi5BPfZsERgjIt069aN9PR0SkpKSEtLq3QxeMeOHYwdOxaPx0N6enqtHy5r0aLFaat1VmX48OEsXbqU/Px8AI4dO8bmzZspLi7m8OHDXH/99Tz//POnHfDliiuuYN68eZSWlrJv3z4WL17MsGHDKrV58803Afz3zFUAAAvKSURBVN9oZ2VDaQY7fPgwEydO5I033iAhIQGAli1b0qNHD9566y3Al3RWr15d6bWtWrWiTZs2fPrppwD89a9/DfQOgn3wwQeBMtl79uxh//79dOnSBfANerNlyxZefPFFMjIyAq8JtVR3bbnuOQJj3G7OnDmsWrWKr776ip49e5KWlkafPn3YvHkzOTk5eDweevbseUZlldu1a8eIESMYOHAg1113HTfccENIr0tISOC1114jIyODkydPAjB79mxatGhBWloaJ06cQFX54x//WON20tPT+eyzzxg8eDAiwjPPPEPHjh3LnY665557mDJlCklJSSQnJ1dKFAALFy5k27Zt/PznPw8sy8vL48033+See+5h9uzZlJSUMHHiRAYPHlzp9a+//jp33303x44do2fPnvzv//5vpTYfffQR06ZNo3HjxgA8++yzgYf4YmJiuPnmm3nrrbfKjY4WXIL72LFjiEjIP+OauKYM9aSXFpO550a4aiZccfb33RpTF4Vahrq6J4tjYmJIT0/nxRdftIfJ6rHalqG2HoExLtSxY0eys7PZsWMHubm5HDx4kDZt2pCammq1hlzIEoExLta1a9czeoLYNCx2sdgYY1zOegTGuJjH42HOnDmArwZRXJy9JbiR/daNcbHMzEymT58OQNu2bbn11lujHJGJBjs1ZIxLeTweZs2aFZifNWtWyAXTTMNiicAYl8rMzCQ/P59evXrRq1cv8vPzyczMPKttNqQy1Fu3buXiiy+md+/eTJgwgVOnTlX5+tjY2ECBuuqexL7tttvo0aMHycnJDB48mI8//rjc/i+44ILANmpzXOFiicAYFwruDcycOZOZM2cCZ98raEhlqB9++GGmT5/O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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 随机森林与svc的ROC曲线对比\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.metrics import roc_curve\n",
    "rf = RandomForestClassifier(n_estimators=100,random_state=0,max_features=2).fit(X_train,y_train)\n",
    "fpr_rf,tpr_rf,thresholds_rf = roc_curve(y_test,rf.predict_proba(X_test)[:,1])\n",
    "\n",
    "plt.plot(fpr,tpr,label=\"ROC Curve SVC\")\n",
    "plt.plot(fpr_rf,tpr_rf,label='ROC Curve RF')\n",
    "\n",
    "plt.xlabel(\"FPR\")\n",
    "plt.ylabel(\"TPR\")\n",
    "plt.plot(fpr[close_zero],tpr[close_zero],'o',markersize=10,label='threshold zero SVC',fillstyle='none',c='k',mew=2)\n",
    "close_default_rf = np.argmin(np.abs(thresholds_rf))\n",
    "plt.plot(fpr_rf[close_default_rf],tpr_rf[close_default_rf],'^',markersize=10,label='threshold 0.5 RF',fillstyle='none',c='k',mew=2)\n",
    "plt.legend(loc=4)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### 计算AUC\n",
    "<p>AUC，即曲线下面积,使用该数字总结ROC曲线。AUC等价于从正类样本中随机挑选一个点,由分类器给出的分数(概率)比从反类样本中随机挑一个点的分数(概率)更高的概率</p>\n",
    "<p>对于不平衡样本,我们通常使用AUC作为衡量指标</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AUC for random forset:0.977\n",
      "AUC FOR SUC:0.967\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import roc_auc_score\n",
    "rf_auc = roc_auc_score(y_test,rf.predict_proba(X_test)[:,1])\n",
    "svc_auc = roc_auc_score(y_test,svc.decision_function(X_test))\n",
    "print(\"AUC for random forset:{:.3f}\".format(rf_auc))\n",
    "print(\"AUC FOR SUC:{:.3f}\".format(svc_auc))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "gamma=1.00 accuracy=0.90 AUC=0.50\n",
      "gamma=0.05 accuracy=0.90 AUC=1.00\n",
      "gamma=0.01 accuracy=0.90 AUC=1.00\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x26f5a3bf520>"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.datasets import load_digits\n",
    "digits = load_digits()\n",
    "y = digits.target==9\n",
    "\n",
    "X_train,X_test,y_train,y_test = train_test_split(digits.data,y,random_state=0)\n",
    "\n",
    "plt.figure\n",
    "\n",
    "for gamma in [1,0.05,0.01]:\n",
    "    svc = SVC(gamma=gamma).fit(X_train,y_train)\n",
    "    accuracy = svc.score(X_test,y_test)\n",
    "    auc = roc_auc_score(y_test,svc.decision_function(X_test))\n",
    "    fpr,tpr,_ = roc_curve(y_test,svc.decision_function(X_test))\n",
    "    print(\"gamma={:.2f} accuracy={:.2f} AUC={:.2f}\".format(gamma,accuracy,auc))\n",
    "    plt.plot(fpr,tpr,label=\"gamma={:.3f}\".format(gamma))\n",
    "\n",
    "plt.xlabel(\"FRR\")\n",
    "plt.ylabel(\"TPR\")\n",
    "plt.xlim(-0.01,1)\n",
    "plt.ylim(0,1.02)\n",
    "plt.legend(\"loc=best\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>AUC等于0，这意味着所有正类的排名都要高于所有反类</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5.5.3 多分类指标\n",
    "<p>多分类指标除了精度,还有混淆矩阵和分类报告</p>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "精度:0.951\n",
      "Confusion matrix:\n",
      "[[37  0  0  0  0  0  0  0  0  0]\n",
      " [ 0 40  0  0  0  0  0  0  2  1]\n",
      " [ 0  1 40  3  0  0  0  0  0  0]\n",
      " [ 0  0  0 43  0  0  0  0  1  1]\n",
      " [ 0  0  0  0 37  0  0  1  0  0]\n",
      " [ 0  0  0  0  0 46  0  0  0  2]\n",
      " [ 0  1  0  0  0  0 51  0  0  0]\n",
      " [ 0  0  0  1  1  0  0 46  0  0]\n",
      " [ 0  3  1  0  0  0  0  0 43  1]\n",
      " [ 0  0  0  0  0  1  0  0  1 45]]\n",
      "精度2:0.951\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "E:\\myAnaconda\\lib\\site-packages\\sklearn\\linear_model\\_logistic.py:762: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
      "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
      "\n",
      "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
      "    https://scikit-learn.org/stable/modules/preprocessing.html\n",
      "Please also refer to the documentation for alternative solver options:\n",
      "    https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
      "  n_iter_i = _check_optimize_result(\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score,confusion_matrix\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.datasets import load_digits\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "\n",
    "digits = load_digits()\n",
    "X_train,X_test,y_train,y_test = train_test_split(digits.data,digits.target,random_state=0)\n",
    "lr = LogisticRegression().fit(X_train,y_train)\n",
    "pred = lr.predict(X_test)\n",
    "print(\"精度:{:.3f}\".format(accuracy_score(y_test,pred)))\n",
    "print(\"Confusion matrix:\\n{}\".format(confusion_matrix(y_test,pred)))\n",
    "print(\"精度2:{:.3f}\".format(lr.score(X_test,y_test)))\n",
    "# 每一行对应真实标签,每一列代表预测标签"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 0.  0.  5. 13.  9.  1.  0.  0.  0.  0. 13. 15. 10. 15.  5.  0.  0.  3.\n",
      "  15.  2.  0. 11.  8.  0.  0.  4. 12.  0.  0.  8.  8.  0.  0.  5.  8.  0.\n",
      "   0.  9.  8.  0.  0.  4. 11.  0.  1. 12.  7.  0.  0.  2. 14.  5. 10. 12.\n",
      "   0.  0.  0.  0.  6. 13. 10.  0.  0.  0.]\n",
      " [ 0.  0.  0. 12. 13.  5.  0.  0.  0.  0.  0. 11. 16.  9.  0.  0.  0.  0.\n",
      "   3. 15. 16.  6.  0.  0.  0.  7. 15. 16. 16.  2.  0.  0.  0.  0.  1. 16.\n",
      "  16.  3.  0.  0.  0.  0.  1. 16. 16.  6.  0.  0.  0.  0.  1. 16. 16.  6.\n",
      "   0.  0.  0.  0.  0. 11. 16. 10.  0.  0.]\n",
      " [ 0.  0.  0.  4. 15. 12.  0.  0.  0.  0.  3. 16. 15. 14.  0.  0.  0.  0.\n",
      "   8. 13.  8. 16.  0.  0.  0.  0.  1.  6. 15. 11.  0.  0.  0.  1.  8. 13.\n",
      "  15.  1.  0.  0.  0.  9. 16. 16.  5.  0.  0.  0.  0.  3. 13. 16. 16. 11.\n",
      "   5.  0.  0.  0.  0.  3. 11. 16.  9.  0.]\n",
      " [ 0.  0.  7. 15. 13.  1.  0.  0.  0.  8. 13.  6. 15.  4.  0.  0.  0.  2.\n",
      "   1. 13. 13.  0.  0.  0.  0.  0.  2. 15. 11.  1.  0.  0.  0.  0.  0.  1.\n",
      "  12. 12.  1.  0.  0.  0.  0.  0.  1. 10.  8.  0.  0.  0.  8.  4.  5. 14.\n",
      "   9.  0.  0.  0.  7. 13. 13.  9.  0.  0.]\n",
      " [ 0.  0.  0.  1. 11.  0.  0.  0.  0.  0.  0.  7.  8.  0.  0.  0.  0.  0.\n",
      "   1. 13.  6.  2.  2.  0.  0.  0.  7. 15.  0.  9.  8.  0.  0.  5. 16. 10.\n",
      "   0. 16.  6.  0.  0.  4. 15. 16. 13. 16.  1.  0.  0.  0.  0.  3. 15. 10.\n",
      "   0.  0.  0.  0.  0.  2. 16.  4.  0.  0.]\n",
      " [ 0.  0. 12. 10.  0.  0.  0.  0.  0.  0. 14. 16. 16. 14.  0.  0.  0.  0.\n",
      "  13. 16. 15. 10.  1.  0.  0.  0. 11. 16. 16.  7.  0.  0.  0.  0.  0.  4.\n",
      "   7. 16.  7.  0.  0.  0.  0.  0.  4. 16.  9.  0.  0.  0.  5.  4. 12. 16.\n",
      "   4.  0.  0.  0.  9. 16. 16. 10.  0.  0.]\n",
      " [ 0.  0.  0. 12. 13.  0.  0.  0.  0.  0.  5. 16.  8.  0.  0.  0.  0.  0.\n",
      "  13. 16.  3.  0.  0.  0.  0.  0. 14. 13.  0.  0.  0.  0.  0.  0. 15. 12.\n",
      "   7.  2.  0.  0.  0.  0. 13. 16. 13. 16.  3.  0.  0.  0.  7. 16. 11. 15.\n",
      "   8.  0.  0.  0.  1.  9. 15. 11.  3.  0.]\n",
      " [ 0.  0.  7.  8. 13. 16. 15.  1.  0.  0.  7.  7.  4. 11. 12.  0.  0.  0.\n",
      "   0.  0.  8. 13.  1.  0.  0.  4.  8.  8. 15. 15.  6.  0.  0.  2. 11. 15.\n",
      "  15.  4.  0.  0.  0.  0.  0. 16.  5.  0.  0.  0.  0.  0.  9. 15.  1.  0.\n",
      "   0.  0.  0.  0. 13.  5.  0.  0.  0.  0.]]\n",
      "[0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9]\n"
     ]
    }
   ],
   "source": [
    "print(digits.data[:8])\n",
    "print(digits.target[:20])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import mglearn\n",
    "import matplotlib.pyplot as plt\n",
    "scores_image = mglearn.tools.heatmap(\n",
    "    confusion_matrix(y_test,pred),xlabel='predicted label',\n",
    "    ylabel='True label',xticklabels=digits.target_names,yticklabels=digits.target_names,\n",
    "    cmap=plt.cm.gray_r,fmt=\"%d\"\n",
    ")\n",
    "plt.title(\"Confusion matrix\")\n",
    "plt.gca().invert_yaxis()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      1.00      1.00        37\n",
      "           1       0.89      0.93      0.91        43\n",
      "           2       0.98      0.91      0.94        44\n",
      "           3       0.91      0.96      0.93        45\n",
      "           4       0.97      0.97      0.97        38\n",
      "           5       0.98      0.96      0.97        48\n",
      "           6       1.00      0.98      0.99        52\n",
      "           7       0.98      0.96      0.97        48\n",
      "           8       0.91      0.90      0.91        48\n",
      "           9       0.90      0.96      0.93        47\n",
      "\n",
      "    accuracy                           0.95       450\n",
      "   macro avg       0.95      0.95      0.95       450\n",
      "weighted avg       0.95      0.95      0.95       450\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# 利用classification_report函数,我们可以计算每个类别的准确率,召回率,f1分数\n",
    "from sklearn.metrics import classification_report\n",
    "print(classification_report(y_test,pred))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<p>对于多分类问题中的不平衡数据集，最常用的指标是多分类版本的f-分数。多分类f-分数背后的思想是:对每个类别计算一个二分数f-分数，其中该类别是正类,其他所有类别组成反类。然后,使用以下策略之一，对这些按类别f-分数进行平均</p>\n",
    "<UL>\n",
    "    <LI>\"宏\"(macro)平均:计算未加权的按类别f-分数,它对所有类别给出相同的权重,无论类别中的样本量大小</LI>\n",
    "    <LI>\"加权\"(weighted)平均:以每个类别的支持作为权重来计算按类别f-分数的平均值,分类报告给出的就是这个值</LI>\n",
    "    <LI>\"微\"（micro）平均:计算所有类别中假正例,假反例,真正例,真反例的总数,然后利用这些计数来计算准确率,召回率和f-分数</LI>\n",
    "</UL>\n",
    "<P>如果你对每个<strong>样本</strong>等同看待,那么推荐使用“微平均”,如果你对每个<strong>类别</strong>等同看待,那么推荐使用宏平均</P>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "微平均:0.951\n",
      "宏平均:0.952\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import f1_score\n",
    "print(\"微平均:{:.3f}\".format(f1_score(y_test,pred,average='micro')))\n",
    "print(\"宏平均:{:.3f}\".format(f1_score(y_test,pred,average='macro')))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5.3.4 回归指标\n",
    "<p>我们认为均方误差R^2是评估回归模型的更直观目标</p>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 5.3.5.在模型选择中使用评估指标"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "默认评分:[0.975      0.99166667 1.         0.99442897 0.98050139]\n",
      "accuracy='score':[0.975      0.99166667 1.         0.99442897 0.98050139]\n",
      "AUC 得分:[0.99717078 0.99854252 1.         0.999828   0.98400413]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.svm import SVC\n",
    "from sklearn.model_selection import cross_val_score\n",
    "# 分类问题的默认评分是精度\n",
    "print(\"默认评分:{}\".format(\n",
    "    cross_val_score(SVC(),digits.data,digits.target==9)\n",
    "))\n",
    "# 指定 scroing= 'accuracy' 不会改变结果\n",
    "explicit_accuracy = cross_val_score(SVC(),digits.data,digits.target==9,scoring='accuracy')\n",
    "print(\"accuracy='score':{}\".format(\n",
    "    explicit_accuracy\n",
    "))\n",
    "# 修改评分为auc\n",
    "roc_auc = cross_val_score(SVC(),digits.data,digits.target==9,scoring='roc_auc')\n",
    "print(\"AUC 得分:{}\".format(roc_auc))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Grid Search withaccuracy\n",
      "Best parameters:{'gamma': 0.0001}\n",
      "Best corss-validataion score(accuracy):0.976\n",
      "Test set AUC:0.992\n",
      "Test set accuracy 0.973\n"
     ]
    }
   ],
   "source": [
    "# 改变gridSearchCV中的最佳参数指标\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.metrics import roc_auc_score\n",
    "X_train,X_test,y_train,y_test = train_test_split(digits.data,digits.target==9,random_state=0)\n",
    "\n",
    "param_grid = {'gamma':[0.0001,0.01,0.1,1,10]}\n",
    "# 使用默认的精度\n",
    "grid = GridSearchCV(SVC(),param_grid=param_grid)\n",
    "grid.fit(X_train,y_train)\n",
    "print(\"Grid Search withaccuracy\")\n",
    "print(\"Best parameters:{}\".format(grid.best_params_))\n",
    "print(\"Best corss-validataion score(accuracy):{:.3f}\".format(grid.best_score_))\n",
    "print(\"Test set AUC:{:.3f}\".format(\n",
    "    roc_auc_score(y_test,grid.decision_function(X_test))\n",
    "))\n",
    "print(\"Test set accuracy {:.3f}\".format(grid.score(X_test,y_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Grid-Search with AUC\n",
      "Best parameters:{'gamma': 0.01}\n",
      "Best cross-validation score(AUC):0.998\n",
      "Test set AUC:1.000\n",
      "Test set accuracy:1.000\n"
     ]
    }
   ],
   "source": [
    "# 使用AUC来代替评分\n",
    "grid = GridSearchCV(SVC(),param_grid=param_grid,scoring='roc_auc')\n",
    "grid.fit(X_train,y_train)\n",
    "print(\"\\nGrid-Search with AUC\")\n",
    "print(\"Best parameters:{}\".format(grid.best_params_))\n",
    "print(\"Best cross-validation score(AUC):{:.3f}\".format(grid.best_score_))\n",
    "print(\"Test set AUC:{:.3f}\".format(\n",
    "    roc_auc_score(y_test,grid.decision_function(X_test))\n",
    "))\n",
    "print(\"Test set accuracy:{:.3f}\".format(grid.score(X_test,y_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
